package org.springblade.modules.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.admin.dto.SimpleElevatorDetailDTO;
import org.springblade.modules.admin.entity.Building;
import org.springblade.modules.admin.entity.ElevatorDevice;
import org.springblade.modules.admin.vo.BuildingDeviceEleVO;
import org.springblade.modules.admin.vo.BuildingSelectListVO;
import org.springblade.modules.admin.vo.BuildingVO;
import org.springblade.modules.admin.vo.SimpleElevatorInfoVO;
import org.springblade.modules.system.vo.SimpleUserVO;

import java.util.List;
import java.util.Map;

public interface ElevatorDeviceService extends BaseService<ElevatorDevice> {

	Boolean saveOrUpdateElevatorDevice(ElevatorDevice elevatorDevice);

	Boolean saveOrUpdateElevatorDeviceList(List<ElevatorDevice> elevatorDevices);

	Boolean removeElevatorDevice(List<Long> elevatorIds);

	IPage<BuildingVO> buildingPage(IPage<BuildingVO> page, Building building);

    List<String> deviceList();

	/**
	 * 根据deviceId查询用户简要数据
	 * @param deviceId
	 * @return
	 */
	List<SimpleUserVO> getSimpleUserByDeviceId(String deviceId);

	SimpleElevatorDetailDTO getSimpleElevator(Long elevatorId, Integer p);

	List<SimpleUserVO> getSimpleUserByUserId(List<Long> estateUserIdList);

	List<SimpleUserVO> getSimpleUserByPhone(List<String> assessorPhones);

	/**
	 * 项目下拉选择设备id
	 * @return
	 */
	List<BuildingSelectListVO> buildingSelectDevices();

    List<BuildingDeviceEleVO> buildingDeviceEleList(Long buildingId);

	List<Map<String, Object>> getSimpleUserByDeviceIds(List<String> deviceIds);

	List<Map<String, Object>> getSimpleUserByElevatorIds(List<Long> elevatorIds);

	SimpleElevatorInfoVO getSimpleElevatorInfo(String deviceId);

	SimpleElevatorInfoVO getSimpleElevatorInfoByElevatorId(Long elevatorId);
}
